home *** CD-ROM | disk | FTP | other *** search
/ C/C++ Users Group Library 1996 July / C-C++ Users Group Library July 1996.iso / listings / v_09_03 / 9n03075a < prev    next >
Text File  |  1990-12-07  |  1KB  |  82 lines

  1.  
  2. ;
  3. ; _cio - console i/o for embedded system example
  4. ;    near version
  5. ;
  6.  
  7. _TEXT    segment    byte public 'CODE'
  8. DGROUP    group    _DATA,_BSS
  9.     assume    cs:_TEXT,ds:DGROUP,ss:DGROUP
  10. _TEXT    ends
  11.  
  12. _DATA    segment word public 'DATA'
  13. _DATA    ends
  14.  
  15. _BSS    segment word public 'BSS'
  16. _BSS    ends
  17.  
  18.  
  19. _TEXT    segment    byte public 'CODE'
  20.  
  21.  
  22. ;
  23. ; _cin - input to console
  24. ;    near version
  25. ;
  26.  
  27. __cin    proc    near
  28.     public    __cin
  29.     push    bp            ; perform c entry
  30.     mov    bp,sp
  31.     push    bx            ; save bx for c
  32.     mov    ah,0h            ; get the byte
  33.     mov    bx,7
  34.     int    16h            ; using the bios
  35.     mov    ah,0            ; "sign extend" - convert to int
  36.     pop    bx            ; restore context
  37.     pop    bp
  38.     ret
  39. __cin    endp
  40.  
  41.  
  42. ;
  43. ; _cout - output to console
  44. ;    near version
  45. ;
  46.  
  47. __cout    proc    near
  48.     public    __cout
  49.     push    bp            ; c entry
  50.     mov    bp,sp
  51.     push    bx            ; save register for c
  52.     mov    ax,word ptr [bp+4]    ; get c
  53.     mov    ah,0eh            ; and output the byte
  54.     mov    bx,7
  55.     int    10h            ; call bios
  56.     pop    bx            ; restore context
  57.     pop    bp
  58.     ret
  59. __cout    endp
  60.  
  61.  
  62. ;
  63. ; _cinit - console initialization
  64. ;    **** No initialization required for bios version ****
  65. ;
  66. ;    near version
  67. ;
  68.  
  69. __cinit    proc    near
  70.     public    __cinit
  71.     push    bp
  72.     ; perform any required hardware initialization here
  73.     mov    ax,1            ; return true for success
  74.     pop    bp
  75.     ret
  76. __cinit    endp
  77.  
  78.  
  79. _TEXT    ends
  80.  
  81.     end
  82.